#====================================================================
#
# Makefile	TURTLE Program builds
#
#====================================================================
#
#====================================================================
#	Paths
#====================================================================

HOME = ..
SRC  = $(HOME)\src
INC  = $(HOME)\inc
DATA = $(HOME)\data

#====================================================================
#	Macro & Assembler flags
#====================================================================

MACFLAGS   = -i$(HOME)\inc
GFLAGS     = -I$(HOME)\inc -o
STADDR     = c000
DADDR      = DF00
ALNFLAGS   = -l -a $(STADDR) $(DADDR) x
MAPFLAGS   = -v -m -l -a $(STADDR) x x

#====================================================================
#	Default Rules
#====================================================================

.SUFFIXES:	.o .s .dat .gas .3ds .jag

.s.o:
	mac $(MACFLAGS) $*

.gas.dat:
	gasm $(GFLAGS) $*
	ltxconv -a $*
	bin2dat $*

.dat.o:
	mac $(MACFLAGS) $*.dat

.jag.o:
	mac $(MACFLAGS) $*.jag

.3ds.jag:
	3ds2jag -o $* $*.3ds

#====================================================================
#	Object code modules
#====================================================================
#
OBJS = turtle.o video.o joypad.o gpu.o

SRCS = turtle.s video.s joypad.s gpu.s

GPUS = fastdraw.gas turtle.gas sort.gas

INC0 = $(INC)\jaguar.inc $(INC)\gpu.inc $(INC)\blit.inc
INC1 = $(INC)\defs.inc $(INC)\joypad.inc
INCS = $(INC0) $(INC1)

DATS = $(DATA)\cube.o

#
#====================================================================
#	TARGETS
#====================================================================
#

default:	demo.abs

map:		demo.map

backup:		$(INCS) $(DATS) $(GPUS) $(SRCS) makefile
	@echo Starting Source Backup
	@echo 	copying makefile to a:\space\src
	@copy makefile a:\space\src
	@echo 	copying $(SRCS) to a:\space\src
	@copy $(SRCS) a:\space\src
	@echo 	copying $(GPUS) to a:\space\src
	@copy $(GPUS) a:\space\src
	@echo 	copying $(DATS) to a:\space\data
	@copy $(GPUS) a:\space\data
	@echo 	copying $(INCS) to a:\space\inc
	@copy $(GPUS) a:\space\inc
	@echo Source Backup Complete

#
#====================================================================
#	EXECUTABLES
#====================================================================
#

demo.abs:	makefile $(OBJS) $(DATS)
	aln $(ALNFLAGS) -o demo $(OBJS) $(DATS)
	filefix demo

demo.map:
	aln $(MAPFLAGS) -o demo $(OBJS) $(DATS) > demo.map
	filefix demo

#
#====================================================================
#	68000	Dependencies
#====================================================================
#

turtle:		turtle.o
turtle.o: 	turtle.s $(INC)\jaguar.inc $(INC)\blit.inc $(INC)\joypad.inc

video:		video.o
video.o: 	video.s $(INC)\jaguar.inc

joypad:		joypad.o
joypad.o: 	joypad.s $(INC)\jaguar.inc $(INC)\joypad.inc

gpu:		gpu.o
gpu.o:		gpu.s $(INC)\jaguar.inc $(INC)\blit.inc $(INC)\gpu.inc sort.dat fastdraw.dat turtle.dat

#
#====================================================================
#	GPU Dependencies
#====================================================================
#

fastdraw.dat:	fastdraw.gas macros.inc $(INC)\jaguar.inc $(INC)\blit.inc $(INC)\gpu.inc

turtle.dat:	turtle.gas macros.inc $(INC)\jaguar.inc $(INC)\blit.inc $(INC)\gpu.inc

sort.dat:	sort.gas macros.inc $(INC)\jaguar.inc $(INC)\blit.inc $(INC)\gpu.inc

#
#====================================================================
#	Data Dependencies
#====================================================================
#

cube:			$(DATA)\cube.o

$(DATA)\cube.o:		$(DATA)\cube.jag
	mac $(MACFLAGS) $*.jag

$(DATA)\cube.jag:	$(DATA)\cube.3ds
	3ds2jag -l cube -o $* -s $*.3ds

#====================================================================
#		EOF
#====================================================================

